﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ProjControleModelos;
using ProjControleBLL;

namespace ProjControle
{
    public partial class frm_cadastro_marcas : Form
    {
        Char tipo_controle;
        public frm_cadastro_marcas()
        {
            InitializeComponent();
        }
        #region Métodos
        public void inserir()
        {
            tipo_controle = 'I';
            tbDescricao.Enabled = true;
            bAlterar.Enabled = false;
            bIncluir.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = true;
            bVoltar.Enabled = false;
            bCancelar.Enabled = true;
            dgMarcas.Enabled = false;
        }
        public void alterar()
        {
            tipo_controle = 'A';
            tbDescricao.Enabled = true;
            bAlterar.Enabled = false;
            bIncluir.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = true;
            bVoltar.Enabled = false;
            bCancelar.Enabled = true;
            dgMarcas.Enabled = false;
        }
        public void load_frm()
        {
            bIncluir.Enabled = true;
            bAlterar.Enabled = false;
            bSalvar.Enabled = false;
            bVoltar.Enabled = true;
            bExcluir.Enabled = false;
            dgMarcas.Enabled = true;
            tbDescricao.Enabled = false;
            associaGrid();
        }
        public void associaGrid()
        {
            DataTable tab;
            MarcasBLL objLL = null;
            try
            {
                tab = new DataTable();
                tab.Columns.Add("cod_marca");
                tab.Columns.Add("descricao_marca");
                dgMarcas.DataSource = tab;
                //dgMarcas.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                //dgMarcas.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dgMarcas.AllowUserToAddRows = false;
                dgMarcas.AllowUserToResizeRows = false;
                dgMarcas.AllowUserToResizeColumns = false;
                dgMarcas.Columns["cod_marca"].HeaderText = "Código";
                dgMarcas.Columns["cod_marca"].Width = 70;
                dgMarcas.Columns["descricao_marca"].HeaderText = "Descrição";
                dgMarcas.Columns["descricao_marca"].Width = 250;
                objLL = new MarcasBLL();
                dgMarcas.DataSource = objLL.localizar();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            objLL = null;

        }
        public void limpar()
        {
            tbCodigo.Text = "";
            tbDescricao.Text = "";
            bIncluir.Enabled = true;
            bAlterar.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = false;
            bVoltar.Enabled = true;
            tbDescricao.Enabled = false;
            dgMarcas.DataSource = null;
            associaGrid();
            dgMarcas.Enabled = true;
        }
        public Marcas carregaPropriedades()
        {
            Marcas objM = new Marcas();
            try
            {
                if (tbCodigo.Text == "")
                    objM.cod_marca = 0;
                else
                {
                    objM.cod_marca = int.Parse(tbCodigo.Text);
                }
                objM.descricao_marca = tbDescricao.Text;
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            return objM;
        }
        public void carregaCampos(Marcas objM)
        {
            try
            {
                tbCodigo.Text = objM.cod_marca.ToString();
                tbDescricao.Text = objM.descricao_marca;
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }
        #endregion

        private void bIncluir_Click(object sender, EventArgs e)
        {
            inserir();
        }

        private void bAlterar_Click(object sender, EventArgs e)
        {
            alterar();
        }

        private void bExcluir_Click(object sender, EventArgs e)
        {
            MarcasBLL objBLL = null;
            Marcas objM = null;
            try
            {
                if (MessageBox.Show("Deseja Excluir?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    objBLL = new MarcasBLL();
                    objM = carregaPropriedades();
                    objBLL.excluir(objM);
                    MessageBox.Show("Excluido com Sucesso", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    limpar();
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            objBLL = null;
            objM = null;
        }

        private void bCancelar_Click(object sender, EventArgs e)
        {
            limpar();
        }

        private void bVoltar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void bSalvar_Click(object sender, EventArgs e)
        {
            MarcasBLL objBLL = null;
            Marcas objM = null;
            try
            {
                objM = carregaPropriedades();
                objBLL = new MarcasBLL();
                if (tipo_controle == 'I')
                    objBLL.inserir(objM);
                else
                    objBLL.alterar(objM);

                MessageBox.Show("Salvo com Sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                bCancelar_Click(sender, e);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            objBLL = null;
        }

        private void dgMarcas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int codigo = 0;
            MarcasBLL objBLL = null;
            Marcas objM = null;
            try
            {
                codigo = int.Parse(dgMarcas.Rows[e.RowIndex].Cells[0].Value.ToString());
                if (codigo != 0)
                {
                    bAlterar.Enabled = true;
                    bExcluir.Enabled = true;
                    bIncluir.Enabled = false;
                    bCancelar.Enabled = true;
                    objBLL = new MarcasBLL();
                    objM = objBLL.localizar(codigo);
                    if (objM.cod_marca != 0)
                    {
                        carregaCampos(objM);
                    }
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

        private void frm_cadastro_marcas_Load(object sender, EventArgs e)
        {
            load_frm();
        }
    }
}
